Nous arrivons à la fin de notre tour d'horizon de l'intelligence artificielle en nous concentrant maintenant sur la reconnaissance d'images. Bien que les systèmes de reconnaissance d'images soient généralement performants, ils présentent certaines limites.
Les images contiennent souvent une grande quantité d'informations. Il est donc essentiel, dans un premier temps, de déterminer la pertinence de chaque objet dans l'image. Il est également crucial de comprendre comment le système identifie le début et la fin de chaque objet. Cela aide à appréhender les défis que le système doit surmonter pour fournir des résultats précis.
De plus, comme le système ne peut pas toujours donner une réponse définitive, il propose généralement trois réponses possibles avec une probabilité associée à chacune. Cette probabilité varie de 0 à 1, où 1 indique une certitude de 100 %.
Pour que cela fonctionne il va falloir créer un environnement virtuel:
Créer un environnement virtuel dans le dossier virtualenv1
\apps\python3\python.exe -m pip install virtualenv
\apps\python3\python.exe -m venv virtualenv1
Activer l'environnement pour la commande actuelle
cd virtualenv1
Scripts\activate.bat
À partir de là, python est "dans le path", cela veut dire que depuis cette ligne de commande, on peut simplement appeler python ainsi:
python
Télécharger l'archive suivante
Maintenant que nous avons couvert ces aspects, tu peux procéder à l'installation des dépendances en utilisant le fichier requirements.txt. Charge ce fichier comme d'habitude avec la commande suivante :
python -m pip install -r requirements.txt
Notre programme utilise les bibliothèques TensorFlow et Pillow. Voici comment installer ces bibliothèques :
python -m pip install tensorflow pillow
Je vais te donner un aperçu rapide du code, et je t'expliquerai plus en détail le rôle de chaque bloc plus tard. L'objectif est que tu comprennes comment le programme fonctionne sans entrer dans les moindres détails.
import tensorflow as tf
from tensorflow.keras.preprocessing import image
from tensorflow.keras.applications.resnet50 import ResNet50, preprocess_input, decode_predictions
import numpy as np
# Charger le modèle pré-entraîné ResNet50
model = ResNet50(weights='imagenet')
def classify_image(image_path):
# Charger l'image et la redimensionner
img = image.load_img(image_path, target_size=(224, 224))
# Convertir l'image en tableau numpy
img_array = image.img_to_array(img)
# Ajouter une dimension supplémentaire pour le batch
img_array = np.expand_dims(img_array, axis=0)
# Prétraiter l'image pour le modèle
img_array = preprocess_input(img_array)
# Prédire la classe de l'image
predictions = model.predict(img_array)
# Décoder les prédictions pour obtenir les labels
decoded_predictions = decode_predictions(predictions, top=3)[0]
# Afficher les résultats
for i, (imagenet_id, label, score) in enumerate(decoded_predictions):
print(f"{i + 1}: {label} ({score:.2f})")
# Exemple d'utilisation
image_path = 'chemin/vers/votre/image.jpg'
classify_image(image_path)
classify_image : Cette fonction charge une image, la redimensionne, la prépare pour le modèle, effectue une prédiction et affiche les trois principales prédictions avec leurs scores de confiance.Maintenant, tu peux ajouter des images dans le dossier en les nommant monImageXX.jpg. 📁📸
Après avoir ajouté tes images, teste si elles sont correctement reconnues par le modèle. 🤖🔍
Attention : Les noms des objets (animaux ou autres) seront en anglais, sauf si le dictionnaire de traduction contient la traduction. 🌍🔠
Le modèle de reconnaissance d'images a réussi à identifier et traduire les noms d'animaux 🦁 et d'objets 🚗 pour la plupart des images fournies. Bien que certaines traductions aient nécessité des ajustements manuels, le programme a montré une solide capacité à classifier divers animaux et objets grâce au modèle pré-entraîné ResNet50.
Le modèle fonctionne de manière efficace pour les images de haute qualité et pour les catégories bien représentées dans le jeu de données ImageNet. Cependant, pour des animaux plus rares ou des objets spécifiques, il pourrait être bénéfique d'améliorer le modèle ou d'utiliser un jeu de données plus spécialisé.
L'ajout d'un dictionnaire de traduction a rendu les résultats plus accessibles pour les utilisateurs francophones. Cette approche pourrait encore être perfectionnée en élargissant le dictionnaire pour inclure davantage de termes.
Nous te remercions pour ta participation et te souhaitons une excellente fin de journée.